package com.rc.saas.tenant.service.acct;

import com.alipay.api.response.AlipayFundTransUniTransferResponse;
import com.rc.saas.tenant.base.BaseService;
import com.rc.saas.tenant.dto.TransPayWalletInfoDto;
import com.rc.saas.tenant.dto.TransPayWalletResultDto;
import com.rc.saas.tenant.mapper.acct.AcctWithdrawApplyMapper;
import com.rc.saas.tenant.mapper.acct.AcctWithdrawOrderMapper;
import com.rc.saas.tenant.model.acct.AcctWithdrawApply;
import com.rc.saas.tenant.model.acct.AcctWithdrawApplyExample;
import com.rc.saas.tenant.model.acct.AcctWithdrawOrder;
import com.rc.saas.tenant.model.acct.AcctWithdrawOrderExample;
import com.rc.saas.tenant.model.transfer.TransferOrder;
import com.rc.saas.tenant.vo.acct.AcctWithdrawApplyResult;

/**
 * Created by Sven on 2021/01/29
 */
public interface AcctWithdrawOrderService extends BaseService<Long, AcctWithdrawOrder, AcctWithdrawOrderExample, AcctWithdrawOrderMapper> {
    /**
     * 新增成功后返回ID
     */
    void insertSelectiveReturnId(AcctWithdrawOrder acctWithdrawOrder);

    /**
     * 转帐成功后更新订单信息
     */
    void updateSuccessAcctWithdrawOrder(AlipayFundTransUniTransferResponse transferResponse, Long withdrawOrderId);

    void updateSuccessByTransfer(AlipayFundTransUniTransferResponse transferResponse, Long withdrawOrderId,Long memberRefundApplyId);

    AcctWithdrawOrder selectAcctWithdrawOrderByOutTradeNo(String outTradeNo);

    /**
     * 银行卡入账成功后更新订单信息
     * @param withdrawOrderId
     */
    void updateSuccessAcctWithdrawOrder1(Long withdrawOrderId);
}
